/**
 * @author wn
 * @date 2022/08/02 15:22:11
 * @description: 提供购物车 方面 API
 */

import request from '@/utils/request'

/**
 * 获取商品的 最新价格  库存  是否有效 (时间久了本地购物车 部分会失效改变)
 * @param {String} skuId - SKU id
 */

export const getNewCartGoods = skuId => request(`/goods/stock/${skuId}`)

/**
 *  获取商品的specs和skus
 *  @param {String} skuId - SKU id
 */

export const getGoodsSku = skuId => request(`/goods/sku/${skuId}`)

/**
 * 合并购物车--将本地购物车信息提交服务器
 * @param {Array<object>} cartList - 购物车信息列表
 * @param {String} object.skuId - skuId
 * @param {Boolean} object.selected - 选中状态
 * @param {Integer} object.count - 数量
 */

export const mergeCart = cartList =>
	request('/member/cart/merge', cartList, 'POST')

/**
 * 获取最新购物车列表--vuex--updateCart登陆获取
 * @returns
 */

export const findCart = () => request('/member/cart')

/**
 * 加入购物车--页面添加的也是对象  属性更多
 * @param {String} skuId - skuId
 * @param {Integer} count - 加入购物车数量
 * @returns
 */

export const insertCart = (skuId, count) =>
	request('/member/cart', { skuId, count }, 'POST')

/**
 * 删除购物车商品，支批量
 * @param {Array<string>} ids - skuId 的集合
 */

export const deleteCart = ids => request('/member/cart', { ids }, 'DELETE')

/**
 * 修改购物车商品（状态，数量）
 * @param {String} skuId - skuId
 * @param {Integer} count - 加入购物车数量
 * @param {Boolean} selected - 选中状态
 * @returns
 */

export const updateCartImmediate = ({ skuId, selected, count }) =>
	request(`/member/cart/${skuId}`, { selected, count }, 'PUT')

/**
 * 全部选中&取消全选
 * @param {Array<string>} ids - skuId 的集合
 * @param {Boolean} selected - 选中状态
 */

export const checkAllCart = (ids, selected) =>
	request('/member/cart/selected', { ids, selected }, 'PUT')
